As computing networks increase in size, the number and distribution of available resources (e.g., computing and storage resources) becomes more varied. While network growth can provide an improvement in processing power, it can also make the efficient assignment of workloads to resources more difficult. Algorithms have been devised to allocate workloads within a network, but these usually operate in a static, rather than dynamic fashion, so that adjustments based on real-time workload variations are poorly implemented, if they are implemented at all.